package com.nbcio.pm.enums;

/**
 * 项目管理常量
 *
 * @author nbacheng
 */
public class PmConstants {

    // 项目权限
    public static final String PROJECT_VIEW = "pm:project:view";
    public static final String PROJECT_ADD = "pm:project:add";
    public static final String PROJECT_EDIT = "pm:project:edit";
    public static final String PROJECT_DELETE = "pm:project:remove";
    public static final String PROJECT_EXPORT = "pm:project:export";

    // 任务权限
    public static final String TASK_VIEW = "pm:task:view";
    public static final String TASK_ADD = "pm:task:add";
    public static final String TASK_EDIT = "pm:task:edit";
    public static final String TASK_DELETE = "pm:task:remove";
    public static final String TASK_ASSIGN = "pm:task:assign";

    // 项目角色
    public static final String ROLE_PROJECT_MANAGER = "pm_project_manager";
    public static final String ROLE_PROJECT_MEMBER = "pm_project_member";
    public static final String ROLE_PROJECT_VIEWER = "pm_project_viewer";

    // 项目状态
    public static final String STATUS_PLANNING = "planning";
    public static final String STATUS_ACTIVE = "active";
    public static final String STATUS_COMPLETED = "completed";
    public static final String STATUS_PAUSED = "paused";
    public static final String STATUS_CANCELLED = "cancelled";

    // 任务状态
    public static final String TASK_STATUS_PENDING = "pending";
    public static final String TASK_STATUS_ACTIVE = "active";
    public static final String TASK_STATUS_COMPLETED = "completed";
    public static final String TASK_STATUS_PAUSED = "paused";
    public static final String TASK_STATUS_CANCELLED = "cancelled";

    // 优先级
    public static final String PRIORITY_LOW = "low";
    public static final String PRIORITY_MEDIUM = "medium";
    public static final String PRIORITY_HIGH = "high";
    public static final String PRIORITY_URGENT = "urgent";

    // 项目类型
    public static final String PROJECT_TYPE_NORMAL = "normal";
    public static final String PROJECT_TYPE_TEMPLATE = "template";

    // 任务类型
    public static final String TASK_TYPE_TASK = "task";
    public static final String TASK_TYPE_MILESTONE = "milestone";

    // 依赖类型
    public static final String DEPENDENCY_FINISH_TO_START = "finish_to_start";
    public static final String DEPENDENCY_START_TO_START = "start_to_start";
    public static final String DEPENDENCY_FINISH_TO_FINISH = "finish_to_finish";
    public static final String DEPENDENCY_START_TO_FINISH = "start_to_finish";

    // 成员角色
    public static final String MEMBER_ROLE_MANAGER = "manager";
    public static final String MEMBER_ROLE_MEMBER = "member";
    public static final String MEMBER_ROLE_VIEWER = "viewer";

    // 文档类型
    public static final String DOC_TYPE_FILE = "file";
    public static final String DOC_TYPE_FOLDER = "folder";
}
